home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ssssiiiiggggttttrrrraaaapppp((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) ssssiiiiggggttttrrrraaaapppp((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- sigtrap - Perl pragma to enable simple signal handling
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use sigtrap;
- use sigtrap qw(stack-trace old-interface-signals); # equivalent
- use sigtrap qw(BUS SEGV PIPE ABRT);
- use sigtrap qw(die INT QUIT);
- use sigtrap qw(die normal-signals);
- use sigtrap qw(die untrapped normal-signals);
- use sigtrap qw(die untrapped normal-signals
- stack-trace any error-signals);
- use sigtrap 'handler' => \&my_handler, 'normal-signals';
- use sigtrap qw(handler my_handler normal-signals
- stack-trace error-signals);
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The ssssiiiiggggttttrrrraaaapppp pragma is a simple interface to installing
- signal handlers. You can have it install one of two
- handlers supplied by ssssiiiiggggttttrrrraaaapppp itself (one which provides a
- Perl stack trace and one which simply die()s), or
- alternately you can supply your own handler for it to
- install. It can be told only to install a handler for
- signals which are either untrapped or ignored. It has a
- couple of lists of signals to trap, plus you can supply your
- own list of signals.
-
- The arguments passed to the use statement which invokes
- ssssiiiiggggttttrrrraaaapppp are processed in order. When a signal name or the
- name of one of ssssiiiiggggttttrrrraaaapppp's signal lists is encountered a
- handler is immediately installed, when an option is
- encountered it affects subsequently installed handlers.
-
- OOOOPPPPTTTTIIIIOOOONNNNSSSS
- SSSSIIIIGGGGNNNNAAAALLLL HHHHAAAANNNNDDDDLLLLEEEERRRRSSSS
-
- These options affect which handler will be used for
- subsequently installed signals.
-
- ssssttttaaaacccckkkk----ttttrrrraaaacccceeee
- The handler used for subsequently installed signals
- outputs a Perl stack trace to STDERR and then tries to
- dump core. This is the default signal handler.
-
- ddddiiiieeee The handler used for subsequently installed signals
- calls die (actually croak) with a message indicating
- which signal was caught.
-
- hhhhaaaannnnddddlllleeeerrrr _y_o_u_r-_h_a_n_d_l_e_r
- _y_o_u_r-_h_a_n_d_l_e_r will be used as the handler for
- subsequently installed signals. _y_o_u_r-_h_a_n_d_l_e_r can be any
-
-
-
- Page 1 (printed 10/23/98)
-
-
-
-
-
-
- ssssiiiiggggttttrrrraaaapppp((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) ssssiiiiggggttttrrrraaaapppp((((3333))))
-
-
-
- value which is valid as an assignment to an element of
- %SIG.
-
- SSSSIIIIGGGGNNNNAAAALLLL LLLLIIIISSSSTTTTSSSS
-
- ssssiiiiggggttttrrrraaaapppp has a few built-in lists of signals to trap. They
- are:
-
- nnnnoooorrrrmmmmaaaallll----ssssiiiiggggnnnnaaaallllssss
- These are the signals which a program might normally
- expect to encounter and which by default cause it to
- terminate. They are HUP, INT, PIPE and TERM.
-
- eeeerrrrrrrroooorrrr----ssssiiiiggggnnnnaaaallllssss
- These signals usually indicate a serious problem with
- the Perl interpreter or with your script. They are
- ABRT, BUS, EMT, FPE, ILL, QUIT, SEGV, SYS and TRAP.
-
- oooolllldddd----iiiinnnntttteeeerrrrffffaaaacccceeee----ssssiiiiggggnnnnaaaallllssss
- These are the signals which were trapped by default by
- the old ssssiiiiggggttttrrrraaaapppp interface, they are ABRT, BUS, EMT, FPE,
- ILL, PIPE, QUIT, SEGV, SYS, TERM, and TRAP. If no
- signals or signals lists are passed to ssssiiiiggggttttrrrraaaapppp, this
- list is used.
-
- For each of these three lists, the collection of signals set
- to be trapped is checked before trapping; if your
- architecture does not implement a particular signal, it will
- not be trapped but rather silently ignored.
-
- OOOOTTTTHHHHEEEERRRR
-
- uuuunnnnttttrrrraaaappppppppeeeedddd
- This token tells ssssiiiiggggttttrrrraaaapppp to install handlers only for
- subsequently listed signals which aren't already trapped
- or ignored.
-
- aaaannnnyyyy This token tells ssssiiiiggggttttrrrraaaapppp to install handlers for all
- subsequently listed signals. This is the default
- behavior.
-
- _s_i_g_n_a_l
- Any argument which looks like a signal name (that is,
- /^[A-Z][A-Z0-9]*$/) indicates that ssssiiiiggggttttrrrraaaapppp should
- install a handler for that name.
-
- _n_u_m_b_e_r
- Require that at least version _n_u_m_b_e_r of ssssiiiiggggttttrrrraaaapppp is being
- used.
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
- Provide a stack trace for the old-interface-signals:
-
-
-
- Page 2 (printed 10/23/98)
-
-
-
-
-
-
- ssssiiiiggggttttrrrraaaapppp((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) ssssiiiiggggttttrrrraaaapppp((((3333))))
-
-
-
- use sigtrap;
-
- Ditto:
-
- use sigtrap qw(stack-trace old-interface-signals);
-
- Provide a stack trace on the 4 listed signals only:
-
- use sigtrap qw(BUS SEGV PIPE ABRT);
-
- Die on INT or QUIT:
-
- use sigtrap qw(die INT QUIT);
-
- Die on HUP, INT, PIPE or TERM:
-
- use sigtrap qw(die normal-signals);
-
- Die on HUP, INT, PIPE or TERM, except don't change the
- behavior for signals which are already trapped or ignored:
-
- use sigtrap qw(die untrapped normal-signals);
-
- Die on receipt one of an of the nnnnoooorrrrmmmmaaaallll----ssssiiiiggggnnnnaaaallllssss which is
- currently uuuunnnnttttrrrraaaappppppppeeeedddd, provide a stack trace on receipt of aaaannnnyyyy
- of the eeeerrrrrrrroooorrrr----ssssiiiiggggnnnnaaaallllssss:
-
- use sigtrap qw(die untrapped normal-signals
- stack-trace any error-signals);
-
- Install _m_y__h_a_n_d_l_e_r() as the handler for the nnnnoooorrrrmmmmaaaallll----ssssiiiiggggnnnnaaaallllssss:
-
- use sigtrap 'handler', \&my_handler, 'normal-signals';
-
- Install _m_y__h_a_n_d_l_e_r() as the handler for the normal-signals,
- provide a Perl stack trace on receipt of one of the error-
- signals:
-
- use sigtrap qw(handler my_handler normal-signals
- stack-trace error-signals);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 3 (printed 10/23/98)
-
-
-
-
-
-
- ssssiiiiggggttttrrrraaaapppp((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) ssssiiiiggggttttrrrraaaapppp((((3333))))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 4 (printed 10/23/98)
-
-
-
-
-
-
-